<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //数组中新增了map和reduce方法
        //map():接受一个函数，将原数组中的所有元素用这个函数处理后放入新数组返回
        let arr = ['1', '20', '-5', '3'];
        arr = arr.map((item) => {
            return item * 2;
        });
        console.log(arr);//[2, 40, -10, 6]

        console.log("-----------");
        //reduce():为数组中的每个元素依次执行回调函数，不包含数组中被删除或从未被赋值的元素
        //arr.reduce(callback,[initialValue])
        /**
         * callback有4个参数：
         * 1.previousVlaue 上一次调用回调返回的值，或者是提供的初始值initialValue
         * 2.currentValue 数组中当前被处理的元素
         * 3.index 当前元素在数组中的索引
         * 4.array 调用reduce的数组
         * */
        let result = arr.reduce((previousVlaue, currentValue, index, array) => {
            console.log("上一次处理后：" + previousVlaue);
            console.log("当前正在处理：" + currentValue);
            return previousVlaue + currentValue;
        },100);
        console.log(result);
    </script>
</body>

</html>